home *** CD-ROM | disk | FTP | other *** search
- The VESA BIOS interface is a software interface for detection capabilities,
- setting modes and setting the bank register.
-
- VESA 1.0 VESA Standard #VS891001
- VESA 1.1 VESA Standard #VS900602
- VESA 1.2 VESA Standard #VS911022
- VESA 2.0 VESA Standard
-
- ----------104F00-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
- AX = 4F00h
- ES:DI -> 256-byte buffer for SuperVGA information (see below)
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- 02h (VBE 2) function not supported by current hardware config
- 03h (VBE 2) function invalid in current mode
-
- Format of SuperVGA information:
- Offset Size Description
- 00h 4 BYTEs Signature ('VESA'). For VBE 2.0 this field must be set to
- "VBE2" before the call to fill in the version 2.0 fields
- 04h WORD VESA version number
- 06h DWORD pointer to OEM name
- 0Ah 4 BYTEs capabilities.
- Bit 0 Set if the DAC can switch width, clear if it is
- fixed 6bits per primary color
- 1 (VBE2) non-VGA controller
- 2 (VBE2) Programmed DAC with blank bit
- 0Eh DWORD pointer to list of supported VESA and OEM video modes
- Terminated with 0FFFFh.
- 12h WORD Video memory in 64k blocks
- --- VBE v2.0 ---
- 14h WORD OEM software version
- 16h DWORD Pointer to vendor name
- 1Ah DWORD Pointer to product name
- 1Eh DWORD Pointer to product revision string
- 100h 256 BYTEs OEM scratchpad
- The buffer is defined as 256bytes for version 1.0 & 1.2, 262 bytes for version
- 1.1 and 512 bytes for version 2.0. Note: Some VESA drivers have been known to
- write beoynd the end of the official buffer.
- ----------104F01-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
- AX = 4F01h
- CX = SuperVGA video mode
- ES:DI -> 256-byte buffer mode information (see below)
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
-
- Format of mode information:
- Offset Size Description
- 00h WORD mode attributes
- bit 0: mode supported if set
- 1: optional information available if set
- 2: BIOS output supported if set
- 3: set if color, clear if monochrome
- 4: set if graphics mode, clear if text mode
- 5: (VBE2) non-VGA mode
- 6: (VBE2) No bank swiotching supported
- 7: (VBE2) Linear framebuffer mode supported
- 02h BYTE window A attributes
- bit 0: exists if set
- 1: readable if set
- 2: writable if set
- bits 3-7 reserved
- 03h BYTE window B attributes (as for window A)
- 04h WORD window granularity in K
- 06h WORD window size in K
- 08h WORD start segment of window A
- 0Ah WORD start segment of window B
- 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
- 10h WORD bytes per scan line
- ---remainder is optional for VESA modes, needed for OEM modes---
- 12h WORD width in pixels
- 14h WORD height in pixels
- 16h BYTE width of character cell in pixels
- 17h BYTE height of character cell in pixels
- 18h BYTE number of memory planes
- 19h BYTE number of bits per pixel
- 1Ah BYTE number of banks
- 1Bh BYTE memory model type
- 0 Text
- 1 CGA graphics
- 2 Hercules Graphics
- 3 EGA 16 color
- 4 Packed pixels
- 5 Non chain 4 256 color modes
- 6 Direct 15/16/24 bit
- 7 YUV (luminance-chrominance, alos called YIQ)
- 8-0Fh Reserved for VESA
- 10h-0FFh Reserved for OEM
- 1Ch BYTE size of bank in K
- 1Dh BYTE number of image pages
- 1Eh BYTE reserved(1)
- ------VBE v1.2+ --------------------------
- 1Fh BYTE Red mask size
- 20h BYTE Red mask position
- 21h BYTE Green mask size
- 22h BYTE Green mask position
- 23h BYTE Blue mask size
- 24h BYTE Blue mask position
- 25h BYTE Reserved mask size
- 26h BYTE Reserved mask position
- 27h BYTE Direct Screen mode info
- Bit 0 If set the color ramp is programmable, if clear fixed
- 1 If set the reserved field (as defined by Bytes 25-26h)
- can be used by the application, if clear the field is
- truly reserved.
- --- VBE v2.0 ---
- 28h DWORD Physical address of linear video buffer
- 2Ch DWORD Pointer to start of offscreen memory
- 30h WORD Offscreen memory in Kbytes
- The buffer is defined as 256bytes
- ----------104F02-----------------------------
- INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
- AX = 4F02h
- BX = mode
- bit 15 set means don't clear video memory
- bit 14 (VBE2) set to enable linear framebuffer mode
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
-
- Values for VESA video mode:
- 00h-FFh OEM video modes (see AH=00h)
- 100h 640x400x256
- 101h 640x480x256
- 102h 800x600x16
- 103h 800x600x256
- 104h 1024x768x16
- 105h 1024x768x256
- 106h 1280x1024x16
- 107h 1280x1024x256
- 108h 80x60 text
- 109h 132x25 text
- 10Ah 132x43 text
- 10Bh 132x50 text
- 10Ch 132x60 text
- ------------ VBE v1.2+ ------------------
- 10Dh 320x200 32k
- 10Eh 320x200 64k
- 10Fh 320x200 16M
- 110h 640x480 32k
- 111h 640x480 64k
- 112h 640x480 16M
- 113h 800x600 32k
- 114h 800x600 64k
- 115h 800x600 16M
- 116h 1024x768 32k
- 117h 1024x768 64k
- 118h 1024x768 16M
- 119h 1280x1024 32k
- 11Ah 1280x1024 64k
- 11Bh 1280x1024 16M
- ------------ VBE 2.0 --------------------
- 81FFh Special full-memory access mode
- Mode 81FFh preserves the contents of video memory and gives access to
- the entire video memory. It is recommanded that mode 81FFh should be a
- packed pixel mode.
-
- ----------104F03-----------------------------
- INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
- AX = 4F03h
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- BX = video mode (see AX=4F02h)
- ----------104F04-----------------------------
- INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
- AX = 4F04h
- DL = subfunction
- 00h get state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video states
- ES:BX -> buffer
- 02h restore video states
- ES:BX -> buffer
- CX = flags for states to save/restore
- bit 0: video hardware state
- bit 1: video BIOS data state
- bit 2: video DAC state
- bit 3: SuperVGA state
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- ----------104F05-----------------------------
- INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
- AX = 4F05h
- BH = subfunction
- 00h select video memory window
- DX = window address in video memory (in granularity units)
- 01h get video memory window
- Return: DX = window address in video memory (in gran. units)
- BL = window number
- 00h window A
- 01h window B
- Return: AL = 4Fh function supported
- AH = status
- 00h successful
- 01h failed
- ----------104F06-----------------------------
- INT 10 - VESA SuperVGA BIOS 1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
- AX = 4F06h
- BL = function
- 00h set scan line length
- CX = desired width in pixels
- 01h get scan line length
- 02h (VBE 2) set scan line length
- CX = desired width in bytes
- 03h (VBE 2) get maximum scan line length
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- BX = bytes per scan line
- Maximum bytes per scan line for function 03h
- CX = number of pixels per scan line
- Maximum pixels per scan line for function 03h
- DX = maximum number of scan lines
- Unchaqnged for function 03h
- Notes: if the desired width is not achievable, the next larger width will be
- set. The scan line may be wider than the visible area of the screen
- this function is valid in text modes, provided that values are
- multiplied by the character cell width/height
- ----------104F07BH00-------------------------
- INT 10 - VESA SuperVGA BIOS 1.1+ - GET/SET DISPLAY START
- AX = 4F07h
- BH = 00h (reserved)
- BL = 00h (or 80h) set display start
- CX = leftmost displayed pixel in scan line
- DX = first displayed scan line
- = 01h get display start
- Return: BH = 00h
- CX = leftmost displayed pixel in scan line
- DX = first displayed scan line
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- Note: this function is valid in text modes, provided that values are
- multiplied by the character cell width/height
- ----------104F08-----------------------------
- INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
- AX = 4F08h
- BL = function
- 00h Set DAC palette width
- BH = desired number of bits per primary color.
- 01h Get DAC palette width
- Return: AL = 4Fh if function supported
- AH = status
- BH = Current number of bits per primary color (6 = Standard VGA)
- ----------104F09-----------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
- AX = 4F09h
- BL = function
- 00h set palette
- 01h get palette
- 02h set secondary palette data
- 03h get secondary palette data
- 80h set palette during vertical retrace
- CX = number of entries to change
- DX = starting palette index
- ES:DI -> palette buffer (array of 4 bytes per entry)
- Offset Size Description
- 00h BYTE Red byte
- 01h BYTE Green byte
- 02h BYTE Blue byte
- 03h BYTE Alpha or alignment byte
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- 01h failed
- ----------104F0A-----------------------------
- INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE CODE
- AX = 4F0Ah
- BX = function to be copied
- 0001h set bank
- 0002h set display start
- 0003h set palette
- Return: AL = 4Fh if function supported
- AH = status
- 00h successful
- CX = number of bytes to copy
- ES:DI -> code for requested function
- 01h failed
- ----------104F10-----------------------------
- INT 10 - VESA DPMS - Display Power Management Extensions
- AX = 4F10h
- BL = 00h Report VBE/PM Capabilities
- ES:DI = 0000h:0000h
- Return: BH = Power saving state signals supported:
- Bit 0 STAND BY supported if set
- 1 SUSPEND supported if set
- 2 OFF supported if set
- 3 REDUCED On supported if set
- (Not supported in DPMS 1.0)
- BL = VBE/PM Version number:
- Bit 0-3 Minor version
- 4-7 Major version
- 01h Set Display Power State
- BH = Requested Power State:
- 00h ON
- 01h STAND BY
- 02h SUSPEND
- 04h OFF
- 08h REDUCED ON (for flat screens)
- 02h Get Display Power State
- Return: BH = Display Power State
- 00h ON
- 01h STAND BY
- 02h SUSPEND
- 04h OFF
- 08h REDUCED ON (for flat screens)
- Return: AL = 4Fh if function supported
- AH = status
- ----------104FFF-----------------------------
- INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
- AX = 4FFFh
- DL = new state (00h off, 01h on)
-